<?php

//Verificare daca fisierul este inclus in script php sau daca este executat ascincron cu AJAX 
if (isset($variabila_motor_unitati)) {
 $planeta = $variabila_motor_unitati;
 $user = valoare_mysql("SELECT user FROM planete WHERE id = '".$planeta."'");
}
else {
 header("Cache-Control: no-cache, must-revalidate"); 
 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
 header("Content-type: text/xml");
 require("../config.php");
}
include_once("functii.php");

//// Verifica daca sunt actiuni de construire a unitatilor in desfasurare in baza de date.
$query = mysql_query("SELECT * FROM `actiuni_locale` WHERE `planeta` = '$planeta' AND `tip` = 'construire_unitati' ORDER BY `incepere` ASC");
if (mysql_num_rows($query) > 0)
	{ 
	 while($rez = mysql_fetch_array($query))
		{
		// Retrage actiunea din baza de date si caracteristicile ei...
		 $id = $rez['id'];
		 $incepere = $rez['incepere'];
		 $durata = $rez['durata'];
		 $obiect = $rez['obiect'];
		 $tip = $rez['tip'];
		 $valoare = $rez['valoare'];
		 $santier = $rez['santier'];
		 $planeta = $rez['planeta'];
		 
		// Calculeaza daca actiunea s-a sfarsit sau cat din ea este gata.
		 $secunde_trecute = time() - returnare_secunde($incepere, 0);
		 $nr_unitati_construite = floor($secunde_trecute/$durata);
		 $rest = $secunde_trecute%$durata;
		
		// Daca actiunea s-a sfarsit verifica sa nu execute comanda mai mare decat a fost setata. 
		 if($nr_unitati_construite>$valoare) { $nr_unitati_construite  = $valoare; }
		 
		// Vezi cat mai este de executat din comanda si care este data de incepere care trebuie introdusa in baza de date.
		 $valoare = $valoare - $nr_unitati_construite;
		 $timp = time()-$rest;
		 $timp_act = date("Y-m-d H:i:s", $timp);
		 
		// Verifica daca mai exista un rand asemanator in baza de date si cu cat trebuie actualizat "valoarea" in baza de date.
		 $nr_curent = valoare_mysql("SELECT `nr` FROM `unitati` WHERE `planeta` = '".$planeta."' AND `tip` = '".$obiect."' AND `locatie` = 'disponibili'");
		 $nr = $nr_curent+$nr_unitati_construite;
		 $verificare_unitati = mysql_num_rows(mysql_query("SELECT `nr` FROM `unitati` WHERE `planeta` = '".$planeta."' AND `tip` = '".$obiect."' AND `locatie` = 'disponibili'"));
		 
		// Verifica daca mai este ceva de construit sau daca a fost ultima actiune
		 if ($valoare > 0)
		 	{
			// Introduc actiunile si valorile in baza de date
			 if ($nr_unitati_construite > 0)
			 	{
				 mysql_query("UPDATE `actiuni_locale` SET `valoare` = '".$valoare."', `incepere` = '".$timp_act."'  WHERE `id` = '".$id."'");
				 if($verificare_unitati==0)
				 	{
					 mysql_query("INSERT INTO `unitati` ( `tip` , `nr` , `planeta`, `locatie`) VALUES ( '".$obiect."', '1', '".$planeta."', 'disponibili')");
					}
					else
					{
					 mysql_query("UPDATE unitati SET nr = '".$nr."' WHERE planeta = '".$planeta."' AND tip = '".$obiect."' AND `locatie` = 'disponibili'");
					}
				}
			}
			 else
			{ 
			 if ($nr_unitati_construite > 0)
			 	{
				// Daca au fost construite toate unitatile trecele in baza de date....
			 	 if($verificare_unitati==0)
					 	{
						 mysql_query("INSERT INTO `unitati` ( `tip` , `nr` , `planeta` , `locatie` ) VALUES ( '".$obiect."', '1', '".$planeta."', 'disponibili' )");
						}
						else
						{
						 mysql_query("UPDATE unitati SET nr = '".$nr."' WHERE planeta = '".$planeta."' AND tip = '".$obiect."' AND `locatie` = 'disponibili'");
						}
				}
			// ... si sterge actiunea din tabelul cu actiuni locale.
			 mysql_query("DELETE FROM actiuni_locale WHERE planeta = '".$planeta."' AND id = '".$id."'"); 
			}
		}
	}

//Verificare daca este setata variabila $variabila_motor_unitati. Daca da, nu se afiseasa nimic, altfel, se afiseaza continutul XML.
if (!isset($variabila_motor_unitati)) {
	
echo '<?xml version="1.0" ?><arbore>';	
$actiuni = mysql_query("SELECT * FROM `actiuni_locale` WHERE planeta = '".$planeta."' AND tip = 'construire_unitati'");
while($rez_actiuni = mysql_fetch_array($actiuni)) {
//Coloana santier din tabelul actiuni_locale va substitui in cazul de fata clasa unitatii construite.
//Coloana valoare va retine numarul de untitati.
//Coloana obiect va substitui tipul unitatii construite.

$id_act = $rez_actiuni["obiect"];
$tip_unitate = $rez_actiuni["obiect"];
$nume_tip = valoare_mysql("SELECT nume FROM c_unitati WHERE id = '".$tip_unitate."'");
$nr_unitati = $rez_actiuni["valoare"];
$durata_1 = $rez_actiuni["durata"]; 
$incepere = $rez_actiuni["incepere"];
$durata_totala = $nr_unitati*$durata_1;
$terminare = date("H:i:s", returnare_secunde($incepere, 0)+$durata_totala);
$date_sum = verificare_data($incepere, $durata_1, "term");
$nr_sec = calculare_sec(time(), $date_sum, "sec");

if (verificare_data($incepere, $durata_1, ""))
 {
 echo '<actiune>
        <status>true</status>
 	    <id>'.$id_act.'</id>
		<tip>'.$nume_tip.'</tip>
        <nr>'.$nr_unitati.'</nr>
		<durata>'.$nr_sec.'</durata>
        <terminare>'.$durata_1.'</terminare>
	  </actiune>'; 
 }
}

echo '<actiune><status>false</status><id>0</id><tip>0</tip><nr>0</nr><durata>0</durata><terminare>0</terminare></actiune>';
echo '</arbore>';
}

?>